/*
 * Copyright [2025] [Harbortek Corp.]
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.harbortek.helm.tracker.entity.smartdoc.element.parser.html2po;

import com.harbortek.helm.tracker.entity.smartdoc.element.po.SlateDescendant;
import com.harbortek.helm.tracker.entity.smartdoc.element.po.SlateText;
import org.jsoup.nodes.Element;

/**
 * @description parse text element html
 * @author wangfupeng
 */
public class ParseTextElemHtml {
    /**
     * Process text element HTML
     * @param elem DOM element
     * @return Descendant
     */
    public static SlateDescendant parseTextElemHtml(Element elem) {
        String text = elem.text().replaceAll("\\s+", " ");
        SlateText textNode = new SlateText(text);

        // Process style
        SlateDescendant node = textNode;
        for (ParseStyleHtmlFn fn : ParserRegister.PARSE_STYLE_HTML_FN_LIST) {
            node = fn.apply(elem, node);
        }

        return node;
    }
}
